home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / sunrpc / rpc_pipe_fs.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  1KB  |  51 lines

  1. #ifndef _LINUX_SUNRPC_RPC_PIPE_FS_H
  2. #define _LINUX_SUNRPC_RPC_PIPE_FS_H
  3.  
  4. #ifdef __KERNEL__
  5.  
  6. struct rpc_pipe_msg {
  7.     struct list_head list;
  8.     void *data;
  9.     size_t len;
  10.     size_t copied;
  11.     int errno;
  12. };
  13.  
  14. struct rpc_pipe_ops {
  15.     ssize_t (*upcall)(struct file *, struct rpc_pipe_msg *, char __user *, size_t);
  16.     ssize_t (*downcall)(struct file *, const char __user *, size_t);
  17.     void (*release_pipe)(struct inode *);
  18.     void (*destroy_msg)(struct rpc_pipe_msg *);
  19. };
  20.  
  21. struct rpc_inode {
  22.     struct inode vfs_inode;
  23.     void *private;
  24.     struct list_head pipe;
  25.     struct list_head in_upcall;
  26.     int pipelen;
  27.     int nreaders;
  28.     int nwriters;
  29.     wait_queue_head_t waitq;
  30. #define RPC_PIPE_WAIT_FOR_OPEN    1
  31.     int flags;
  32.     struct rpc_pipe_ops *ops;
  33.     struct work_struct queue_timeout;
  34. };
  35.  
  36. static inline struct rpc_inode *
  37. RPC_I(struct inode *inode)
  38. {
  39.     return container_of(inode, struct rpc_inode, vfs_inode);
  40. }
  41.  
  42. extern int rpc_queue_upcall(struct inode *, struct rpc_pipe_msg *);
  43.  
  44. extern struct dentry *rpc_mkdir(char *, struct rpc_clnt *);
  45. extern int rpc_rmdir(char *);
  46. extern struct dentry *rpc_mkpipe(char *, void *, struct rpc_pipe_ops *, int flags);
  47. extern int rpc_unlink(char *);
  48.  
  49. #endif
  50. #endif
  51.